package com.cargohu.aishouyu.member.service;

import com.cargohu.aishouyu.framework.page.Paging;
import com.cargohu.aishouyu.framework.service.BaseService;
import com.cargohu.aishouyu.member.dto.MemberAddDTO;
import com.cargohu.aishouyu.member.dto.MemberUpdateDTO;
import com.cargohu.aishouyu.member.entity.Member;
import com.cargohu.aishouyu.member.req.MemberRequest;
import com.cargohu.aishouyu.member.resp.MemberDetailVo;
import com.cargohu.aishouyu.member.resp.MemberResponse;

/**
 * 会员表 服务接口
 *
 * @author aaron.wang
 * @since 2023-11-27
 */
public interface MemberService extends BaseService<Member> {

    /**
     * 添加会员表
     *
     * @param memberAddDTO
     * @return
     * @throws Exception
     */
    boolean addMember(MemberAddDTO memberAddDTO) throws Exception;

    /**
     * 修改会员表
     *
     * @param memberUpdateDTO
     * @return
     * @throws Exception
     */
    boolean updateMember(MemberUpdateDTO memberUpdateDTO) throws Exception;

    /**
     * 删除会员表
     *
     * @param memberId
     * @return
     * @throws Exception
     */
    boolean deleteMember(Long memberId) throws Exception;

    /**
     * 会员表详情
     *
     * @param memberId
     * @return
     * @throws Exception
     */
    MemberDetailVo getMemberById(Long memberId) throws Exception;

    /**
     * 会员表分页列表
     *
     * @param memberRequest
     * @return
     * @throws Exception
     */
    Paging<MemberResponse> getMemberList(MemberRequest memberRequest) throws Exception;

}
